00001 /* -*- c -*- */ 00002 #ifndef INCLUDED_LIB3DS_ATMOSPHERE_H 00003 #define INCLUDED_LIB3DS_ATMOSPHERE_H 00004 /* 00005 * The 3D Studio File Format Library 00006 * Copyright (C) 1996-2001 by J.E. Hoffmann <je-h@gmx.net> 00007 * All rights reserved. 00008 * 00009 * This program is free software; you can redistribute it and/or modify it 00010 * under the terms of the GNU Lesser General Public License as published by 00011 * the Free Software Foundation; either version 2.1 of the License, or (at 00012 * your option) any later version. 00013 * 00014 * This program is distributed in the hope that it will be useful, but 00015 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 00016 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 00017 * License for more details. 00018 * 00019 * You should have received a copy of the GNU Lesser General Public License 00020 * along with this program; if not, write to the Free Software Foundation, 00021 * Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 00022 * 00023 * $Id: atmosphere.h,v 1.1 2005/03/07 11:16:25 Assassin Exp $ 00024 */ 00025 00026 #ifndef INCLUDED_LIB3DS_TYPES_H 00027 #include <lib3ds/types.h> 00028 #endif 00029 00030 #ifdef __cplusplus 00031 extern "C" { 00032 #endif 00033 00034 /*! 00035 * Fog atmosphere settings 00036 * \ingroup atmosphere 00037 */ 00038 typedef struct _Lib3dsFog { 00039 Lib3dsBool use; 00040 Lib3dsRgb col; 00041 Lib3dsBool fog_background; 00042 Lib3dsFloat near_plane; 00043 Lib3dsFloat near_density; 00044 Lib3dsFloat far_plane; 00045 Lib3dsFloat far_density; 00046 } Lib3dsFog; 00047 00048 /*! 00049 * Layer fog atmosphere flags 00050 * \ingroup atmosphere 00051 */ 00052 typedef enum _Lib3dsLayerFogFlags { 00053 LIB3DS_BOTTOM_FALL_OFF =0x00000001, 00054 LIB3DS_TOP_FALL_OFF =0x00000002, 00055 LIB3DS_FOG_BACKGROUND =0x00100000 00056 } Lib3dsLayerFogFlags; 00057 00058 /*! 00059 * Layer fog atmosphere settings 00060 * \ingroup atmosphere 00061 */ 00062 typedef struct _Lib3dsLayerFog { 00063 Lib3dsBool use; 00064 Lib3dsDword flags; 00065 Lib3dsRgb col; 00066 Lib3dsFloat near_y; 00067 Lib3dsFloat far_y; 00068 Lib3dsFloat density; 00069 } Lib3dsLayerFog; 00070 00071 /*! 00072 * Distance cue atmosphere settings 00073 * \ingroup atmosphere 00074 */ 00075 typedef struct _Lib3dsDistanceCue { 00076 Lib3dsBool use; 00077 Lib3dsBool cue_background; 00078 Lib3dsFloat near_plane; 00079 Lib3dsFloat near_dimming; 00080 Lib3dsFloat far_plane; 00081 Lib3dsFloat far_dimming; 00082 } Lib3dsDistanceCue; 00083 00084 /*! 00085 * Atmosphere settings 00086 * \ingroup atmosphere 00087 */ 00088 struct _Lib3dsAtmosphere { 00089 Lib3dsFog fog; 00090 Lib3dsLayerFog layer_fog; 00091 Lib3dsDistanceCue dist_cue; 00092 }; 00093 00094 extern LIB3DSAPI Lib3dsBool lib3ds_atmosphere_read(Lib3dsAtmosphere *atmosphere, Lib3dsIo *io); 00095 extern LIB3DSAPI Lib3dsBool lib3ds_atmosphere_write(Lib3dsAtmosphere *atmosphere, Lib3dsIo *io); 00096 00097 #ifdef __cplusplus 00098 }; 00099 #endif 00100 #endif
1.3-rc3